With the use of personal computers becoming pervasive throughout society, a need has arisen to allow those who have not been specifically trained in computers to enter, develop and maintain information without requiring a significant amount of training. Many solutions have been proposed to this problem.
Help systems such as balloon help, which will create a bubble with context sensitive helpful information when a particular key sequence is entered, and hover help, which also provide pop-up, context sensitive help when the cursor remains over an active field for a certain period of time became popular to assist an untrained or novice user in performing such tasks. While these help systems are a significant improvement over the legacy methods of providing assistance such as providing hard copy documentation or providing a link to online books, they still can be voluminous and do not guide the user through the task which they are attempting to complete.
Another approach to solving the problem of assisting untrained users is the tutorial approach. Before a user attempts to complete an unfamiliar task, they are asked to complete a tutorial which will take them through the steps which they are about to perform. This allows the user to actually see what the panels are and understand a sample of the task to be performed, but it does not assist them when they become confused part way through their execution of the task.
There are several additional solutions to the problem of designing easy to use interfaces to guide users through application programs, three of them are coaches, cue cards and agents.
Coaches are programs that guide a user through an existing interface, teaching the user how to do a task with a particular product. A coach teaches the user how to use a products interface, guiding you from one step to the next and protecting you from making mistakes. An example of this is that a coach might disable every menu item except one, drawing a box around the one enabled menu item that the user should chose. Coaches are different than cue cards in that coaches are more than information. They provide application logic to guide the user through the task.
Cue cards are small help panels that appear along side an existing interface, teaching the user how to do a task with a particular product. Cue cards differ from coaches in that they are informational only; they tell the user what to do but don't guide or restrict the user in any way. It leaves the responsibility to the user to read the information in the cue card and apply that information to the task.
Agents, in the present sense, are autonomous pieces of code that perform a task for the user. Agents typically work in the background and have very little user interface. They are designed to do something without interaction from the user and are typically executed automatically when a predetermined event occurs or a predetermined condition becomes true.
The newest approach to this problem is the creation of wizards. Wizards are interfaces designed to do tasks for users. They are different from the prior art in that they are not necessarily meant to teach or instruct. Wizards are meant to simplify the user interface. Wizards reside between the user and an application program and guide the user through tasks. Examples of this are, for instance, a wizard that allows a form to have pop-up options for each of the fields to be entered. Another example is the Rapid Test product from Mercury Interactive Corp. which uses a plan wizard, a script wizard and a cycle wizard to provide a self-guided visual interface for specifying test requirements and test cases. Wizards were first divulged in a patent assigned to Microsoft Corporation entitled `Method and System for Controlling the Execution of an Application Program`, U.S. Pat. No. 5,301,326.
Wizards are traditionally written in programming languages such as C or C++. Since the wizards are written in programming languages, they require programmers to write them. There is a need in the industry for an intuitive means of creating a wizard without requiring a programmer, a means for creating a wizard that is easy to understand so that a person familiar with the user interface of the application program can easily write a wizard for executing that application program. This would significantly reduce the training costs for those who create user front-ends for application programs.